Computer systems and computerized devices operate software programs that exchange data in a variety of different data formats. As an example, conventional computer programs can format messages and data in a markup language data format such as the eXtensible Markup Language (XML) data format that encodes data in a platform independent manner to allow different computer systems to share the XML encoded data. The software industry commonly refers to data encoded in the XML data format as an XML document. Software developers have created many different programs that are capable of performing a various processing operations on XML documents. XML is a text-based language that requires significant processing resources to encode and decode and otherwise process the data since XML is not in a native machine or processor format.
As an example of conventional XML processing, in a conventional web services architecture, a server computer system can provide access to processing functionality using a web services interface that is defined in a machine-readable interface description, such as Web Services Description Language (WSDL). A particular service expressed or described in WSDL can provide some predefined and specific processing functionality. Other computer systems (e.g., other servers) that want to access web service functionality can discover and invoke the web service offered by the web services server by submitting requests for the service to the web services server using XML data encoded in a remote method invocation protocol such as the Simple Object Access Protocol (SOAP). A requesting computer system can transfer XML/SOAP requests to the web services server providing the web service over HTTP (or over secure HTTP, known as HTTPS). When a server receives an invocation of a web service via an XML message or stream of messages encoded using SOAP/HTTP, the web services server decodes and processes the XML encoded data, performs the web service processing (i.e., the application processing) on the decoded data, and can formulate an XML/SOAP/HTTP response. The server then returns the response to the requesting computer system (i.e., a client or another server) in XML format via HTTP. The XML/SOAP/HTTP web services computing paradigm thus allows distributed computing servers to share processing functionality with other computers, such as other servers and/or clients, using XML encoded data.
Conventional XML processing technologies embedded within a web server allow the web server to interpret and process the XML-encoded data in a variety of ways. Several conventional XML technologies allow a software application to access (e.g., extract) XML-encoded data for application processing purposes. As an example, a server can use XML software processing technologies such as the Document Object Model (DOM) or Simple Application programming interface for XML (SAX) to parse XML documents to gain access to the encoded data. In addition, other XML-related technologies such as XPath and the eXtensible Stylesheet Transformation Language (XSLT) allow a developer of an XML-aware software application to define transformations of XML encoded data from one data format to another. Extensible Stylesheet Transformations (XSLT) is a language originally intended for converting, or transforming, documents written in XML into other formats, including HTML and other XML vocabularies. XSLT uses an XSL document to transform an XML document from one format to another. A schema is a description in a meta-language specifying the acceptable syntax or structure of an XML document. A schema document is used to validate an XML document and guarantee that its syntax is correct. Several schema languages exist. A filter is one or more XPath expressions (which may optionally be contained in an XSLT document or other control structure) used to extract data from an XML document. This data can be used to produce a decision on the acceptability of the input XML document based on an arbitrary set of criteria as expressed in the query expressions. A filter verifies the input document based on semantic or other content (transformed or not transformed) not typically related to syntax, and so differs from a schema validation in this way.
An XSLT document can be used to transform an XML document, and also to schema validate the XML document at the same time using a schema specified in the XML document (or other out-of-band mechanism). As an example, a developer that creates an XML-aware application (e.g., for use on a web services server platform) can create an XSLT transformation to convert XML encoded data to HTML encoded data. A web server process that receives XML encoded data can apply such an XSLT transformation to the XML-encoded data to convert this data, for example, from XML to HTML and the server can return this data to the client thus allowing the client browser to render the XML-encoded data as HTML within a web browser.
If data security is a concern when performing transactions of XML encoded data between computer systems, conventional standards and common practices have emerged to allow a web server to use some of the above XML processing tools (e.g., DOM, SAX, etc.) to perform XML processing such as digital signature validation, encryption, and decryption upon XML encoded data. Other data messages, such as email messages, can be encoded in XML and software developers have created XML-based email message processing applications to parse and process XML encoded email. Generally then, there are a variety of different processing operations that software programs can apply to XML encoded data.